package cn.yzfy.service;

import cn.yzfy.common.model.dto.LoginInputDTO;
import cn.yzfy.common.model.dto.LoginOutputDTO;
import cn.yzfy.common.model.entity.ResourcesEntity;
import cn.yzfy.common.model.vo.AuthenticationUserDetailVO;
import cn.yzfy.common.model.vo.ResourcesTreeVO;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

/**
 * @author 一朝风月
 * @date 2025/9/11 20:34
 * @Code 面向注解面向卿，终无解释再无你
 * @description 鉴权 服务
 */

public interface IAuthService {
    /**
     * 获取用户权限列表
     *
     * @param userId 用户id
     * @return 用户权限列表
     */
    List<ResourcesEntity> queryPermissionsList(Long userId);

    List<ResourcesTreeVO> queryPermissionsTree();

    String captcha();

    LoginOutputDTO login(LoginInputDTO inputDTO, HttpServletRequest request);

    void logout();

    AuthenticationUserDetailVO authenticationUserDetail();
}
